home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / buttons / toolb160 / sample / document.bas next >
BASIC Source File  |  1994-09-05  |  4KB  |  112 lines

  1. Option Explicit
  2.  
  3. Type POINTAPI
  4.     x As Integer
  5.     y As Integer
  6. End Type
  7.  
  8. Declare Function SendMessage Lib "User" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long
  9. Global Const WM_USER = &H400
  10. Global Const EM_LIMITTEXT = WM_USER + 21
  11. Global Const EM_CANUNDO = WM_USER + 22
  12. Global Const EM_UNDO = WM_USER + 23
  13.  
  14. Declare Sub SetWindowPos Lib "User" (ByVal h1%, ByVal h2%, ByVal x%, ByVal y%, ByVal cx%, ByVal cy%, ByVal f%)
  15. Global Const HWND_TOPMOST = -1
  16. Global Const HWND_NOTOPMOST = -2
  17. Global Const SWP_NOACTIVATE = &H10
  18. Global Const SWP_SHOWWINDOW = &H40
  19.  
  20. Global gbFound As Integer
  21. Global gbMatchCase As Integer
  22. Global gbWholeWord As Integer
  23. Global gsFindText As String
  24.  
  25. Global gbMainActive As Integer
  26.  
  27. Global gcForm As frmDocument
  28.  
  29. Sub CheckEditMenu ()
  30. Dim bSel As Integer
  31. Dim bUndo As Integer
  32.  
  33.     If frmMain.ActiveForm Is Nothing Then
  34.     frmMain!mnuEditUndo.Enabled = False
  35.     frmMain!mnuEditCut.Enabled = False
  36.     frmMain!mnuEditCopy.Enabled = False
  37.     frmMain!mnuEditPaste.Enabled = False
  38.     frmMain!mnuEditDelete.Enabled = False
  39.     frmMain!mnuEditSelectAll.Enabled = False
  40.     frmMain!mnuEditDateTime.Enabled = False
  41.     frmMain!mnuFind.Enabled = False
  42.     frmMain!mnuFileSave.Enabled = False
  43.     frmMain!mnuFileSaveAs.Enabled = False
  44.     frmMain!mnuFilePrint.Enabled = False
  45.     Else
  46.     bSel = frmMain.ActiveForm!txtDocument.SelLength > 0
  47.     bUndo = SendMessage(frmMain.ActiveForm!txtDocument.hWnd, EM_CANUNDO, 0, 0)
  48.     frmMain!mnuEditUndo.Enabled = bUndo
  49.     frmMain!mnuEditCut.Enabled = bSel
  50.     frmMain!mnuEditCopy.Enabled = bSel
  51.     frmMain!mnuEditPaste.Enabled = (ClipBoard.GetText() <> "")
  52.     frmMain!mnuFindFindNext.Enabled = gbFound
  53.     frmMain!mnuEditDelete.Enabled = bSel
  54.     frmMain!mnuEditSelectAll.Enabled = True
  55.     frmMain!mnuEditDateTime.Enabled = True
  56.     frmMain!mnuFind.Enabled = True
  57.     frmMain!mnuFileSave.Enabled = True
  58.     frmMain!mnuFileSaveAs.Enabled = True
  59.     frmMain!mnuFilePrint.Enabled = True
  60.     frmMain!ButtonBar1.ButtonState(7) = frmMain.ActiveForm!txtDocument.FontBold
  61.     frmMain!ButtonBar1.ButtonState(8) = frmMain.ActiveForm!txtDocument.FontItalic
  62.     frmMain!ButtonBar1.ButtonState(9) = frmMain.ActiveForm!txtDocument.FontUnderLine
  63.     End If
  64.     frmMain!ButtonBar1.ButtonEnabled(3) = frmMain!mnuEditCut.Enabled
  65.     frmMain!ButtonBar1.ButtonEnabled(4) = frmMain!mnuEditCopy.Enabled
  66.     frmMain!ButtonBar1.ButtonEnabled(5) = frmMain!mnuEditPaste.Enabled
  67.     frmMain!ButtonBar1.ButtonEnabled(2) = frmMain!mnuFileSave.Enabled
  68. End Sub
  69.  
  70. Sub FindText ()
  71. Dim iPos As Integer
  72. Dim sText As String
  73. Dim sFind As String
  74. Dim I As Integer
  75. Dim iComp As Integer
  76.     If frmMain.ActiveForm Is Nothing Then
  77.     frmMain!mnuFind.Enabled = False
  78.     Beep
  79.     Exit Sub
  80.     End If
  81.     frmMain.ActiveForm!lblAction.Caption = "get findposition"
  82.     iPos = Val(frmMain.ActiveForm!lblAction.Caption)
  83.     sText = frmMain.ActiveForm!txtDocument.Text
  84.     sFind = gsFindText
  85.     gbFound = True
  86.     If gbMatchCase = 0 Then iComp = 1 Else iComp = 0
  87. StartFind:
  88.     I = InStr(iPos + 2, sText, sFind, iComp)
  89.     If I > iPos Then
  90.     If gbWholeWord Then
  91.         If InStr(";,. !?:", Mid$(sText, I - 1, 1)) > 0 And InStr(";., !?:", Mid$(sText, I + Len(sFind), 1)) > 0 Then
  92.         frmMain.ActiveForm.txtDocument.SelStart = I - 1
  93.         frmMain.ActiveForm.txtDocument.SelLength = Len(sFind)
  94.         Else
  95.         iPos = I
  96.         GoTo StartFind
  97.         End If
  98.     Else
  99.         frmMain.ActiveForm.txtDocument.SelStart = I - 1
  100.         frmMain.ActiveForm.txtDocument.SelLength = Len(sFind)
  101.     End If
  102.     Else
  103.     Beep
  104.     End If
  105.     CheckEditMenu
  106. End Sub
  107.  
  108. Sub InitFind ()
  109.     gbFound = False
  110. End Sub
  111.  
  112.